## Warning in readLines(rmdCon): ligne finale incomplète trouvée dans
## 'FS_traitements_bdat.Rmd'

Objectifs

Dans ce fichier, les analyses cantonales de la BDAT sont analysées afin appréhender la distribution statistique et géographique des teneurs en carbone organique regroupées en 5 périodes : 1990-1994, 1995-1999, 2000-2004, 2005-2009 et 2010-2014. Les résultats présentés font suite à différents scripts de préparations de données dont la chaîne de traitements générale est consultable à cette adresse

Globalement, le travail est organisé de la manière suivante :

Analyse des teneurs en carbone organique par période (France métropolitaine)

Cette première étape a pour but d’analyser les différences des teneurs en carbone organique pour chacune des périodes de temps analysées. Celles-ci comportent les années 1990-1994;1995-1999;2000-2004;2005-2009 et 2010-2014. Les statistiques descriptives et les courbes de fréquences cumulées sont présentées dans un premier temps. Dans un second temps, des boxplots accompagnés de tests de « significacité » des différences entre les périodes sont mis en oeuvre. Au cours de ces travaux, le regard est porté sur l’emprise nationale mais avec plusieurs niveaux de stratification (régions administratives, zonages climatiques, principales région d’élevage).

Bien présenter l’état des lieux des teneurs pour faciliter l’analyse des évolutions.

France entière

Statistiques descriptives

La figure 1 présente les courbes de fréquences cumulées des teneurs en carbone organique distribuées pour les 5 périodes. Les courbes de fréquences des 5 périodes présentent la même forme en “S” et s’individualisent juste avant le plateau, présentant une différence affectant les sols riches en teneurs organiques. Sur cette zone, la figure montre un décalage des courbes des périodes 2000-2004, 2005-2009 et 2010-2014 vers des valeurs plus faibles. Parmi ces 3 périodes, la période 2005-2009 est celle qui se décale le plus vers des teneurs plus faible tandis que la période 2010-2014 se rapproche des valeurs de 1990-1994 et 1995-1999, présentant ainsi une inversion de la tendance observée. Ces trois périodes se distinguent clairement des périodes de 1990-1994 et 1995-1999 qui sont rapprochées.

Ces observations mettent en évidence une diminution des teneurs en carbone entre les périodes 1990-1999 et 2000-2009 et une légère augmentation pour la période 2010-2014.

La distribution des teneurs en carbone organique par période est présentée dans la figure 2 et les principales statistiques sont présentées dans le tableau ci-dessus. La tendance de diminution des teneurs observée dans la figure 1 est également constatée dans ces deux éléments. La période 2000-2004 montre la valeur médiane la plus faible avec une valeur de 13.81 g/kg. Les valeurs les plus importantes sont observées pour les périodes 1990-1994 et 1995-1999 avec respectivement des teneurs en carbone organique de 14.06 et 14.53. En terme de tendance, on remarque une augmentation des teneurs pour la période 2010-2014 avec une médiane des valeurs de . Ces évolutions sont très légèrement marquées sur la figure 2 où la ligne noire représente XX. Celle-ci baisse légèrement après la période 1995-1999.

13.81revoir avec le 1014

Statistiques descriptives des teneurs en carbone organique par périodes
  Min. 1st Qu. Median Mean 3rd Qu. Max.
9094 4.58 11.04 14.06 16.03 18.52 65.58
9599 5.23 11.15 14.53 16.27 18.9 94.85
0004 4.6 10.76 13.81 15.61 18.01 90.23
0509 3.78 10.91 13.96 15.44 18 78.37
1014 4.7 11 14 15.7 18.27 63.75

Les résultats du test de Wilcoxon présentés ci-dessous montrent que les différences globales entre les périodes sont significatives entre les périodes [1990-1994 et 2000-2004], [1995-1999 et 2000-2004], [1995-1999 et 2005-2009] et [2000-2004 et 2010-2014]. Ces résulats sont à prendre avec mesure, car réalisé sur l’ensemble des cantons. Des résultats de significacité seront présentés plus loin, basés sur les analyses à l’échelle des cantons. Ils montrent toutefois que…

pairwise.wilcox.test(melted.bdat[,"value"], melted.bdat[,"annees"])
## 
##  Pairwise comparisons using Wilcoxon rank sum test 
## 
## data:  melted.bdat[, "value"] and melted.bdat[, "annees"] 
## 
##      9094    9599    0004    0509   
## 9599 0.29250 -       -       -      
## 0004 0.04997 1.1e-05 -       -      
## 0509 0.29250 0.00047 0.75842 -      
## 1014 0.77627 0.11941 0.04997 0.29250
## 
## P value adjustment method: holm

Cartographie des teneurs en carbone organique

Bien que l’hétérogénéité spatiale et temporelle des analyses de la BDAT soient assez importante (certaines zones souffrent de manque de données), la cartographie des teneurs en carbone organique (figure XX) montre une distribution spatiale organisée et globalement similaire pour les différentes périodes analysées. De façon générale, cette organisation suit la lithologie du pays avec de fortes teneurs en carbone organique présentes dans les zones de socles et de piemond et des valeurs plus faibles dans les principaux bassins sédimentaires (parisien et aquitain).

Analyse des facteurs contrôlant la distribution spatiale

Dans cette partie, les facteurs contrôlant la distribution spatiale des teneurs en carbone organique des différentes périodes est analysée. Le travail est dans un premier porté par une analyse en composante principale pour appréhender les relations entre les facteurs et dans un deuxième temps,

Analyse en composante principale

# Sélection des variables de travail
Rcovar <- c("ttemp_an","jfroids_an","jchauds_an","hpluie_an","ugbta1988","p_prairie1970","p_prairie1979","p_prairie1988","p_sth1970","p_sth1979","p_sth1988","p_sfp1970","p_sfp1979","p_sfp1988","p_mf1970","p_mf1979","p_mf1988","p_c1970","p_c1979","p_c1988","altimean","classe_C")#,"grdcultures1988","elevagehorsol1988","polyelevage1988","clc21_90","clc22_90","clc23_90","clc24_90","clc31_90")
vNames <- c("corgox_medequi9094",Rcovar)
#vNames <- c("corgox_medequi9094","corgox_medequi9599","corgox_medequi0004","corgox_medequi0509","corgox_medequi1014",Rcovar)
# Lecture de la table sans les NA
lvNames <- length(vNames)
dcast.bdat_variables <- dcast.bdat[complete.cases(dcast.bdat[,vNames[-lvNames]]),vNames[-lvNames]]

# Création d'une classe de valeur pour le carbone
classe_valeur <- classIntervals(dcast.bdat_variables[vNames[1]][[1]],n=4,style="quantile",digits=1,na.rm=TRUE)[[2]]
dcast.bdat_variables[,"classe_C"] <- cut(dcast.bdat_variables[vNames[1]][[1]],breaks = data.frame(classe_valeur)[,1],include.lowest=T) 

res.pca <- PCA(dcast.bdat_variables[,!names(dcast.bdat_variables) %in% "classe_C"], graph = FALSE)
#fviz_screeplot(res.pca, ncp=10)

pca <- fviz_pca_var(res.pca, axes = c(1,2),col.var="contrib") +
scale_color_gradient2(low="white", mid="blue", 
                  high="red", midpoint=50) + theme_minimal()
pca
fviz_pca_biplot(res.pca, label="var",habillage=dcast.bdat_variables$classe_C,
     addEllipses=FALSE, ellipse.level=0.95, ggtheme = theme_minimal())
Figure 3:

La figure 3 présente la distribution des variables sur les axes 1 et 2 de l’ACP. Environ 73 pourcent de l’information est contenu dans ces deux premiers axes. Description de la distribution des variables dans l’espace des ACP :

  • STH, Prairie et SFP suivent la même dynamique et sont opposées aux variables associées aux grandes cultures. Ces différentes variables sont très bien représentées et ont une forte contribution dans la variance du jeu de données,
  • Le mais fourrage est également lié aux UGB. Ces 2 types de variables sont liés à l’axe 2,
  • Les variables climatiques semblent être liées à l’axe 3 (à vérifier).

Dans cet espace, la variable carbone est peu contributrice et n’est pas nettement liée à un axe (1 ou 2). Il faudra regarder la répartition de ces variables sur les axes 1-3 et 2-3.

La représentation des échantillons classés par teneurs en carbone organique permet de visualiser le lien entre les variables et …(mal dit).

Modélisation avec GBM

Bien spécifier que GBM est utilisé juste pour appréhender l’importance et le comportement des variables explicatives.

L’application de ces modèles demande une bonne configuration de leurs paramètres. Pour déterminer la meilleur combinaison de paramètres, la fonction train du package caret est utilisée.

  1. Boosted regression tree (BRT) Les modèles d’arbres de régression boostés sont connus pour améliorer la précision de prédiction par rapport aux simples arbres de régression. L’algo permet d’ajuster un modèle en fonction d’un processus itératif. A chaque itération, les arbres de régresssions sont ajustés et montés sur une fraction de l’ensemble des données échantillongées. Les principaux paramètres d’un modèle sont :
    1. le taux d’apprentissage (skrinkage) : il correspond à une constante déterminant l’influence de la combinaison individuelle des arbres qui forme le forme le modèle final. Lorsque ce coefficient est faible, le modèle est très spécialisé et est difficilement applicable sur un autre jeu de données.
    2. la taille des arbres (interaction depth) correspond à la taille des arbres de régression. Lorsque la taille est égale à 1, chaque arbre est constitué d’un seul noeud, on modélise l’effet d’une seule variable prédictive. Ainsi, le modèle final additionne séparément l’effet prédictif des variables et les intéractions des variables ne sont pas explicitement prise en compte. Lorsque la taille des arbres est supérieur à 1, chaque arbre de régression individuelle modélise l’interaction d’au moins deux variables prédictives. Celà permet l’utilisation de modèle prenant en compte les intéractions d’ordre i entre les variables prédictives. La capacité de représenter les interactions entre les variables prédictives sans connaissance a priori est l’un des avantages des arbres de régression.
    3. le nombre d’arbre (n.tree)correspond au nombre d’arbre pour l’ajustement. C’est l’équivalent du nombre d’itérations.

Pour ce travail, rajouter la topographie (altitude moyenne par canton) + l’argile Faire une boucle et présenter les graphs d’importances pour les différentes périodes de temps analysées. Si il n’y a pas de différences dans l’ordre d’importance des variables, on pourra en conclure que la stratification est pertinente (pourquoi?)

##### Sélection des variables explicatives (revoir cette sélection, se baser sur un tableau à charger en fonction des périodes à analyser)
Rcovar <- c("hpluie_an","jchauds_an","jfroids_an","ttemp_an","altimean","p_sfp1988","polyelevage1988","p_prairie1970","p_prairie1979","p_prairie1988","p_sfp1970","p_sfp1979","p_mf1988","p_sth1970","p_sth1979","p_c1988","p_c1970","p_c1979","p_sth1988","p_mf1970","p_mf1979","p_mf1988","clc31_90","clc21_90","clc22_90","clc23_90","clc24_90","clc31_90","ugbgrani_sau2010","ugbta1988")
type <- c("climat","climat","climat","climat","topo","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup","occup")
vNames <- c("corgox_medequi9599",Rcovar) #9599 car meilleure représentation spatiale
#####

#  Sélection du jeu de données
dcast.bdat_gbm <- dcast.bdat[complete.cases(dcast.bdat[,vNames]),vNames] # Pour supprimer les NA
datax <- dcast.bdat_gbm[, vNames[-1]]
datay <- dcast.bdat_gbm[, vNames[1]]

#tuneGrid <- expand.grid(.interaction.depth = c(1,5,9,13),.n.trees = c(150,500,1000,1500),.shrinkage = 0.05)
#trControl <- trainControl(method = "cv",p=0.8)
#tuneGrid <-  expand.grid(interaction.depth = c(1, 5, 9),n.trees = (1:30)*10,shrinkage = 0.1,n.minobsinnode = 20)

#registerDoMC(4) # Nombre de processeurs activés
#mgbm <- train(x = datax , y = datay,method="gbm",tuneGrid = tuneGrid,trControl = trControl,verbose = F,keep.data = T)
#plot(varImp(mgbm), top = 10)

# Stratification par zonage des grandes régions d'élevage
p <- list()
for(i in levels(dcast.bdat$zonage_simple)){
  print(i)
  dcast.bdat_zonage <- dcast.bdat[complete.cases(dcast.bdat[,c(vNames,"zonage_cplt")]) & dcast.bdat$zonage_simple %in% i,vNames] # Pour supprimer les NA
  
  datax <- dcast.bdat_zonage[, vNames[-1]]
  datay <- dcast.bdat_zonage[, vNames[1]]

  #tuneGrid <- expand.grid(.interaction.depth = c(1,5,9,13),.n.trees = c(150,500,1000,1500),.shrinkage = 0.05)
  trControl <- trainControl(method = "cv",p=0.9)
  tuneGrid <-  expand.grid(interaction.depth = c(1, 5, 9),n.trees = (1:50)*10,shrinkage = 0.1,n.minobsinnode = 20)

  mgbm <- train(x = datax , y = datay,method="gbm",tuneGrid = tuneGrid,trControl = trControl,verbose = F,keep.data = T)

  varimport <- varImp(mgbm)
  varimport <- as.data.frame(varimport[[1]])
  varimport$variable <- rownames(varimport)
  colnames(varimport) <- c("importance","variable")
  #varimport <- varimport[order(varimport$importance,decreasing = TRUE),]
  varimport$variable <- reorder(varimport$variable, varimport$importance)
  varimport <- varimport[1:10,]
  varimport$type <- gsub2(Rcovar,type,varimport$variable)#Ajout du type de facteurs

  p[[i]] <- ggplot(varimport, aes(x = variable, y = importance,fill=type)) + 
  geom_bar(stat = "identity") + coord_flip() + labs(title=i)
}

do.call(grid.arrange,c(p,list(ncol=2,nrow=3))) #Figure finale
# Voir pour rajouter une analyse avec cubist

tuneGridcubist <- expand.grid(.committees = c(10,50,100),.neighbors = c(1,5,9)) 
mcubist <- train(x = datax , y = datay,"cubist",tuneGrid = tuneGridcubist,trControl = trControl,verbose = F,keep.data = T)

cubistimportVar <- varImp(mcubist)
cubistimportVar$variable <- rownames(cubistimportVar)
colnames(cubistimportVar) <- c("importance","variable")

ccubist <- ggplot(MeanimportVar, aes(x = variable, y = importance, fill = type)) + 
    geom_bar(stat = "identity") + coord_flip()
plot(ccubist)


plot(varImp(mcubist), top = 10)
print(mcubist$usage)

Graphiques de correlation

xlabel <- "Pluie annuelle (mm)"
ylabel <- "Carbone organique (g/kg)"
period <- c("9094","9599","0004","0509","1014") #
colors <- brewer.pal(5,"Set1")

p <- list()
for(i in period){
  c_period <- paste("corgox_medequi",i,sep="")
  
  dataplot <- dcast.bdat[complete.cases(dcast.bdat$classe_p_prairie2000) & complete.cases(dcast.bdat$hpluie_an) & complete.cases(dcast.bdat[,c_period]),]
  
  p[[i]] <- ggplot(dataplot, aes_string("hpluie_an",c_period)) +
            geom_point(aes(colour = factor(classe_p_prairie2000)),alpha = 0.8, size = 1) +
            #geom_point(colour="grey10", alpha = 0.1,size = 1)+
            scale_color_manual(values=colors,name="% de prairie (2000)")+
            scale_x_continuous(xlabel)+scale_y_continuous(ylabel)+
            theme(plot.title = element_text(size = 14, face = "bold"), 
            text = element_text(size = 12),
            axis.title = element_text(face="bold"),
            axis.text.x=element_text(size = 11))+ labs(title=i)    
}
    
#do.call(grid.arrange,c(p,list(ncol=2,nrow=3)))
do.call(grid_arrange_shared_legend,c(p,list(nrow=2,ncol=3,position="bottom")))
## TableGrob (2 x 1) "arrange": 2 grobs
##   z     cells    name              grob
## 1 1 (1-1,1-1) arrange   gtable[arrange]
## 2 2 (2-2,1-1) arrange gtable[guide-box]
xlabel <- "Altitude moyenne (m)"

p <- list()
for(i in period){
  c_period <- paste("corgox_medequi",i,sep="")
  
  dataplot <- dcast.bdat[complete.cases(dcast.bdat$classe_p_prairie2000) & complete.cases(dcast.bdat$altimean) & complete.cases(dcast.bdat[,c_period]),]
  
  p[[i]] <- ggplot(dataplot, aes_string("altimean",c_period)) +
            geom_point(aes(colour = factor(classe_p_prairie2000)),alpha = 0.8, size = 1) +
            #geom_point(colour="grey10", alpha = 0.1,size = 1)+
            scale_color_manual(values=colors,name="% de prairie (2000)")+
            scale_x_continuous(xlabel)+scale_y_continuous(ylabel)+
            theme(plot.title = element_text(size = 14, face = "bold"), 
            text = element_text(size = 12),
            axis.title = element_text(face="bold"),
            axis.text.x=element_text(size = 11))+ labs(title=i)    
}
    
#do.call(grid.arrange,c(p,list(ncol=2,nrow=3)))
do.call(grid_arrange_shared_legend,c(p,list(nrow=2,ncol=3,position="bottom")))
## TableGrob (2 x 1) "arrange": 2 grobs
##   z     cells    name              grob
## 1 1 (1-1,1-1) arrange   gtable[arrange]
## 2 2 (2-2,1-1) arrange gtable[guide-box]

Conclusion

Ici, conclure en disant que l’analyse des teneurs france entière et des dynamiques n’est pas facile en raison de :

  • les dynamiques régionales spécifiques peuvent être noyées (pourquoi?) dans la masse…
  • la part des facteurs contrôlant la distribution (climat, l’occup du sol…)

Par type de climat

Ici, expliquer rapidement cette stratification et présenter rapidement la carte des types de climat.

xlabel <- "Carbone organique (g/kg)"
ylabel <- "Fréquence"
colour <- brewer.pal(5,"Set1")#wes_palette("Rushmore",nperiod,type="continuous")


melted.bdat_clim <- melted.bdat[complete.cases(melted.bdat$typo_clim) & complete.cases(melted.bdat$annees),]

cdf_clim <- ggplot(melted.bdat_clim, aes(x=value))+
       facet_wrap(~typo_clim)+
       stat_ecdf(aes(colour=annees))+
       scale_color_manual(values=colour, 
                          name="Périodes")+
       scale_x_continuous(xlabel)+scale_y_continuous(ylabel)+
       theme(plot.title = element_text(size = 14, face = "bold"), 
             text = element_text(size = 12),
             axis.title = element_text(face="bold"),
             axis.text.x=element_text(size = 11))
cdf_clim

Pour le climat, on pourra s’intéresser à quelques zones, en fonction de la densité des données que nous avons à disposition. Voir la figure 6 présente les courbes de fréquence cumulées pour les différents types de climats.

ylim1 <- boxplot.stats(melted.bdat_clim$value)$stats[c(1, 5)]

boxplot_clim <- ggplot(melted.bdat_clim) +
            geom_boxplot(aes(x=annees,y=value),outlier.shape = NA,outlier.size=NA)+
            facet_wrap(~typo_clim,scales="free")+
            #scale_color_manual(values=colors,name="Années")+
            #geom_smooth(aes(x=as.integer(annees),y=value,color=nom_region,fill=nom_region),method=loess)+
            scale_x_discrete("Périodes")+scale_y_continuous("Teneur en carbone (g/kg)")+
            theme(plot.title = element_text(size = 14, face = "bold"), 
                  text = element_text(size = 12),
                  axis.title = element_text(face="bold"),
                  axis.text.x=element_text(size = 11))+
            coord_cartesian(ylim = ylim1*1.05)
boxplot_clim  

Voir aussi pour rajouter la figure 8. Sur cette figure, revoir l’axe Y…

Par régions d’élevage

Egalement, ce concentrer sur les zones où les données sont importantes. On peut supprimer les zones de hautes de montagnes… Test également en fonction des différentes régions d’élevage

Regard sur les courbes de fréquences cumulées avec la figure 9

melted.bdat_regelevage <- melted.bdat[complete.cases(melted.bdat$zonage_cplt),]
#melted.bdat_regelevage <- melted.bdat_regelevage[melted.bdat_regelevage$zonage_simple != "H",]

cdf_regelevage <- ggplot(melted.bdat_regelevage, aes(x=value))+
       facet_wrap(~zonage_cplt)+
       stat_ecdf(aes(colour=annees))+
       scale_color_manual(values=colors, 
                          name="Années")+
       scale_x_continuous(xlabel)+scale_y_continuous(ylabel)+
       theme(plot.title = element_text(size = 14, face = "bold"), 
             text = element_text(size = 12),
             axis.title = element_text(face="bold"),
             axis.text.x=element_text(size = 11))
cdf_regelevage

Ci-dessous, on regarde la répartition des teneurs en C pour les différentes périodes et par les principales régions d’élevage.

#ylim1 <- boxplot.stats(melted.bdat$value)$stats[c(1,5)]
ylim1 <- c(min(melted.bdat_regelevage$value,na.rm=TRUE),quantile(melted.bdat$value,0.99,na.rm=TRUE))

boxplot_reg_elevage <- ggplot(melted.bdat_regelevage) +
            geom_boxplot(aes(x=annees,y=value,col=annees),outlier.shape = NA,outlier.size=NA)+
            facet_wrap(~zonage_simple,scales="free")+
            scale_color_manual(values=colors,name="Années")+
            #geom_smooth(aes(x=as.integer(annees),y=value,color=nom_region,fill=nom_region),method=loess)+
            scale_x_discrete("Années")+scale_y_continuous("Teneur en carbone (g/kg)")+
            theme(plot.title = element_text(size = 14, face = "bold"), 
                  text = element_text(size = 12),
                  axis.title = element_text(face="bold"),
                  axis.text.x=element_text(size = 11))+
            coord_cartesian(ylim = ylim1*1.05)
boxplot_reg_elevage

Rajouter des résumés de statistiques pour mieux identifier les zones impactées.

Zoom sur les 3 régions d’élevage affectées par la baisse du pourcentage de STH, prairies et surface fourragères

Par classe de pourcentage d’occupation du sol (données du recensement agricole)

for(i in id_class){
  melted.bdat_ra <- melted.bdat[complete.cases(melted.bdat[,i]),]
  names(melted.bdat_ra)[names(melted.bdat_ra)==i] <- "classe"
  
  p <- ggplot(melted.bdat_ra) +
            geom_boxplot(aes(x=annees,y=value,col=classe),notch=TRUE)+
            #scale_color_manual(name="Années")+
            scale_x_discrete("Périodes")+scale_y_continuous("Teneur en carbone (g/kg)")+
            theme(plot.title = element_text(size = 14, face = "bold"), 
                  text = element_text(size = 12),
                  axis.title = element_text(face="bold"),
                  axis.text.x=element_text(size = 11))
  p  
  ggsave(p,file = paste("boxplotbdat_",i,".png",sep=""), width = 15, height = 10)  
}

Résumé des statistiques

# Ici, voir pour rajouter année+zonage_simple ou année+climato ou année+région
bdatsummary_regelevage <- apply(melted.bdat["value"],2, function(x) tapply(x, list(melted.bdat[,"zonage_simple"],melted.bdat[,"annees"]),summary))
bdatsummary_regelevage <- data.frame(bdatsummary_regelevage[[1]])
bdatsummary_regelevage <- lapply(bdatsummary_regelevage, do.call, what = rbind)
names(bdatsummary_regelevage) <- period

# Revoir pour construire une table plus lisible
#pander(bdatsummary_regelevage,caption = "Statistiques descriptives par période des teneurs en CO pour les principales régions d'élevage")


# Ici, voir pour rajouter année+zonage_simple ou année+climato ou année+région
bdatsummary_regadmin<- apply(melted.bdat["value"],2, function(x) tapply(x, list(melted.bdat[,"nom_region"],melted.bdat[,"annees"]),summary))
bdatsummary_regadmin <- data.frame(bdatsummary_regadmin[[1]])
bdatsummary_regadmin <- lapply(bdatsummary_regadmin, do.call, what = rbind)
names(bdatsummary_regadmin) <- period

# Revoir pour construire une table plus lisible
#pander(bdatsummary_regadmin,caption = "Statistiques descriptives par période des teneurs en CO pour les différentes régions administratives")

Graphique de correlation

# voir ce type de graphique...
# http://www.sthda.com/english/wiki/ggpubr-r-package-ggplot2-based-publication-ready-plots#at_pco=smlwn-1.0&at_si=5881c5fa70a2cae1&at_ab=per-2&at_pos=0&at_tot=1


# Voir les graphiques de "différence" réalisés durant le M1
# Rajouter les types de climat ou autre niveau de stratification pour voir l'influence de ces régions sur les pertes 
# Voir également pour rajouter ces données sur une table au format melt
plot(dcast.bdat$corgox_med9599,dcast.bdat$varcorgox_med0004_9599)

plot(dcast.bdat$corgox_med9599,dcast.bdat$diffcorgox_med0004_9599)

# Calculer les évolutions
varcorgox_med0004_9599 
varcorgox_med0509_9599
varcorgox_med0509_9094
varcorgox_med0004_9094
diffcorgox_med0004_9599
diffcorgox_med0509_9599
diffcorgox_med0509_9094
diffcorgox_med0004_9094

test <- dcast.bdat[,c("corgox_med9094","corgox_med9599","corgox_med0004","corgox_med0509")]
ggpairs(test)

Cartographie

Dans cette partie, des cartes peuvent être produites selon plusieurs arguments (reste à définir) :

  • stratification spatiale (région ou autre entités spatiales),
  • stratification temporelle (groupe de plusieurs années).
# Paramètres #################
tablecarto <- "dm_vecteurs.canton" #Nom de la table utilisée pour la cartographie (table postgis)
period <- c("9094","9599","0004","0509","1014") #
variable <- "corgox_medequi"
variablecarto <- paste(variable,period,sep="")#variables à cartographier
nclasse <- 5 
style_classe <- "quantile"#Nombre de classes de valeurs pour la cartographie
couleur <- "Spectral" #Nom de la palette couleur (selon RColorBrewer)display.brewer.all() pour connaître les différentes palettes
l_variable <- "Teneur en carbone organique (g/kg)" #label de la variable
nomfichier <- "corgoxmed_period_fr" #Nom du fichier

carto(dsn,tablecarto,variablecarto,nclasse,style_classe,couleur,l_legend,repsortie,nomfichier,dept=FALSE,reg=FALSE,nrowlayout=1,ncollayout=5,position="bottom",ggsaveheight=5,ggsavewidth=20)  

test avec les différences

# Paramètres #################
tablecarto <- "dm_vecteurs.canton" #Nom de la table utilisée pour la cartographie (table postgis)
period <- c("14","15","24","25")#
variable <- "diff"
variablecarto <- paste(variable,period,sep="")#variables à cartographier
nclasse <- 5 #Nombre de classes de valeurs pour la cartographie
style_classe <- "quantile"
couleur <- "Spectral" #Nom de la palette couleur (selon RColorBrewer)display.brewer.all() pour connaître les différentes palettes
l_variable <- "Teneur en carbone organique (g/kg)" #label de la variable
nomfichier <- "corgoxmed_period" #Nom du fichier de sortie (.png)

cartoperiod(dsn,tablecarto,variablecarto,nclasse,style_classe,couleur,l_legend,repsortie,nomfichier,dept="37",reg=FALSE)

Graphique de correlation

# Stratifier les plots par les régions et autres facteurs (voir pour la classification climatique)
plot(dcast.bdat$hpluie_an,dcast.bdat$corgox_medequi9094)
plot(dcast.bdat$p_sth2000,dcast.bdat$corgox_medequi9094)


plot(dcast.bdat$hpluie_an,dcast.bdat$corgox_medequi9094)


# Voir le développement de ce type de graphique
# Relation avec les hauteurs de pluie
ggplot(dcast.bdat, aes(hpluie_an, corgox_medequi9094,shape=factor(classe_p_prairie2000))) +
  geom_point(aes(colour = factor(classe_p_prairie2000)), size = 4) +
  geom_point(colour="grey10", size = 1.5)

# Relation avec l'altitude
ggplot(dcast.bdat, aes(ttmean, corgox_medequi9094,shape=factor(classe_p_prairie2000))) +
  geom_point(aes(colour = factor(classe_p_prairie2000)), size = 4) +
  geom_point(colour="grey10", size = 1.5)

Autres graphiques

Même démarche que boxplot_clim mais avec les régions d’élevage